//1. 定义一个数组，随机获取20个0~100的整数，要求如下（结果要取四舍五入）：
function randomBetween(x,y){
    return Math.round(Math.random()*(y-x) + x)
}
var numArr = []
for(var i=1; i<=20; i++){
    var randomNum = randomBetween(0,100)
    numArr.push(randomNum)
}

//var arr = [4,3,2,5]
//把相邻两个数字比较，始终把大的数放在右边
// for(var i=0;i<arr.length-1;i++){
//     if(arr[i] > arr[i+1]){
//         var x = arr[i+1]
//          arr[i+1] = arr[i]
//          arr[i] = x
//     }
// }
//1----[3,4,2,5]
//2----[3,2,4,5]
//3----[3,2,4,5]
//把相邻两个数字比较，始终把小的数放在右边
// for(var i=0;i<arr.length-1;i++){
//     if(arr[i] < arr[i+1]){
//         var x = arr[i+1]
//          arr[i+1] = arr[i]
//          arr[i] = x
//     }
// }
//1----[4,3,2,5]
//2----[4,3,2,5]
//3----[4,3,5,2]
//- 计算最大值、最小值
for(var i=0;i<numArr.length-1;i++){
    if(numArr[i] > numArr[i+1]){
        var x = numArr[i+1]
        numArr[i+1] = numArr[i]
        numArr[i] = x
    }
}
var maxNum = numArr[numArr.length-1]
//var maxNum = numArr.slice(-1)[0]
for(var i=0;i<numArr.length-1;i++){
    if(numArr[i] < numArr[i+1]){
        var x = numArr[i+1]
        numArr[i+1] = numArr[i]
        numArr[i] = x
    }
}
var minNum = numArr[numArr.length-1]
//计算数组元素之和、平均值
var sum = 0;
numArr.forEach(function(el){
    sum = sum + el
    // sum += el
})

var ave = sum / numArr.length
var newArr = numArr.map(function(el){
    return Math.round(el-ave)
})
newArr.sort(function(a,b){
    return a - b
})
//----------------------------------------------------------------------
//2. 随机输入一个数组，数组元素是数字或者字符串，除该数组中重复的元素。
var arr2 = [1,2,1,1,3,'a',2,1,'b','a','a',1]
arr2.forEach(function(el,index){
    console.log(`主循环索引${index}，当前元素${el}`)
    for(var i=index+1;i<arr2.length;i++){
        console.log(`子循环索引${i}，当前元素${arr2[i]}`)
        //el代表主循环的元素，arr[i]代表子循环的元素
        if(el == arr2[i]){
            console.log(`子循环发现元素 ${arr2[i]}和当前主循环的元素 ${el}相等，子循环索引${i}`)
            console.log(`删除重复元素 ${arr2[i]}`)
            arr2.splice(i,1)
            console.log(`删除重复元素后数组为：${arr2}`)
            i--
        }
    }
})

//var arr2 = [1,2,3,'a',2,1,'b','a','a',1]
//主 el 1 idx 0
//子 el 2 idx 1; el 1 idx 2 删除1 [1,2,1,3....] ; el 3 idx 3



// 3. users = [
//     {name:'马云',id:1,age:55},
//     {name:'马华腾',id:2,age:56},
//     {name:'李彦宏',id:3,age:53},
//     {name:'王尼马',id:4,age:35},
//     {name:'雷军',id:6,age:50},
//     {name:'李雷',id:7,age:26},
// ]
// 要求：
// - 1.按照姓名拼音降序排列所有用户。
// - 2.筛选出年龄大于等于50岁的所有用户，放入一个新数组。
// - 3.计算所用用户的年龄平均值。
// - 4.筛选出所有姓马的用户，放入一个新数组。
// - 5.给每个用户的年龄都减5。
// - 6.统计所用户的姓出现的数量。如本案例结果应该为{'马'：2,'李':2，'王':1,'雷':1}

var users = [
    {name:'马云',id:1,age:55},
    {name:'马华腾',id:2,age:56},
    {name:'李彦宏',id:3,age:53},
    {name:'王尼马',id:4,age:35},
    {name:'雷军',id:6,age:50},
    {name:'李雷',id:7,age:26},
];
// 1.按照姓名拼音降序排列所有用户。
users.sort(function(a,b){
    return a.name.localeCompare(b.name)
})
// - 2.筛选出年龄大于等于50岁的所有用户，放入一个新数组。
var users1 = users.filter(function(el){
    return el.age >= 50
})
// - 3.计算所用用户的年龄平均值。

var ageSum = 0;
users.forEach(function(el){
    ageSum += el.age
})
var ageAve = ageSum / users.length

// - 4.筛选出所有姓马的用户，放入一个新数组。
var usersMa = users.filter(function(el){
    return el.name.startsWith('马')
})

// - 5.给每个用户的年龄都减5。
var usersYounger = users.map(function(el){
    //{name:'马云',id:1,age:55},
    el.age -= 5
    //{name:'马云',id:1,age:50},
    return el
}) 

//- 6.统计所用户的姓出现的数量。如本案例结果应该为{'马'：2,'李':2，'王':1,'雷':1}
var lastNameCount = {} //{'马'：2,'李':2，'王':1,'雷':1}
users.forEach(function(user){
    var lastName = user.name[0];
    //判断lastNameCount是否包含当前姓的键
    //{"马"：1}
    if(lastName in lastNameCount){
        //如果包含这个姓，就让这个姓的键对应的值＋1
        lastNameCount[lastName]++
    }else{
        lastNameCount[lastName] = 1
    }

})